/*

This file is part of Rooms3D.

Copyright (C) 2008 Pixecur Technologies Incorporated (Esotera).
Visit Esotera at http://www.esoteras3.com
 
Rooms3D is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
 
Rooms3D is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with Rooms3D; see the file COPYING.  If not, write to 
Pixecur Technologies, 213-31 Peet Street, St. John's, NL, A1B 3W8. 
 
Linking this library statically or dynamically with other modules is
making a combined work based on this library.  Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
 
*/

package com.datasentinel.rooms.banner.sh3d;

import java.io.IOException;
import java.io.Serializable;
import java.io.StringReader;

import javax.swing.text.BadLocationException;
import javax.swing.text.html.HTMLDocument;
import javax.swing.text.html.HTMLEditorKit;

import com.datasentinel.rooms.ui.sh3d.Selectable3D;
import com.eteks.sweethome3d.model.HomePieceOfFurniture;
import com.eteks.sweethome3d.model.PieceOfFurniture;

/**
 * @author rickp
 * 
 */
public class BannerStringPieceOfFurniture extends HomePieceOfFurniture implements
		Serializable, Selectable3D
{
	private static final long serialVersionUID = 1L;
	private String text;
	private String name;
	transient private StringBuffer buffer;

	public BannerStringPieceOfFurniture(BannerStringPieceOfFurniture piece)
	{
		super(piece);
		this.text = piece.getText();
	}
	
	public BannerStringPieceOfFurniture(BannerPieceOfFurniture piece)
	{
		super(piece);
		this.text = piece.getText();
	}
	
	public BannerStringPieceOfFurniture(PieceOfFurniture piece)
	{
		super(piece);
	}
	
	public BannerStringPieceOfFurniture(PieceOfFurniture piece, String text)
	{
		super(piece);
		this.text = text;
	}
	
	@Override
	public String getName()
	{
		return name;
	}

	public String getText()
	{
		return text;
	}
	public void setText(String text)
	{
		this.text = text;
	}
	
	public Object getData()
	{
		if (buffer == null)
			buffer = new StringBuffer(text);
		else
			text = buffer.toString();
		return buffer;
	}
	
	@Override
	public String toString()
	{
		return String.format("%s@%x <%s>", getClass().getSimpleName(),hashCode(),text);
	}
}
